1 research outputs found

    Implementaci贸n de un VHDL de un decodificador Viterbi y su integraci贸n en un prototipo de un sistema WiMAX

    Get PDF
    En los sistemas de comunicaci贸n se producen errores que hacen que la secuencia recibida por el receptor no sea igual a la transmitida. Por este motivo se emplean sistemas FEC, forward error correction. Estos sistemas consisten en un codificador-decodificador que permiten corregir los errores que a帽ade el canal de transmisi贸n. Los m谩s habituales son los c贸digos convolucionales, los de bloque y los turbo c贸digos. En este proyecto dise帽amos, implementamos, simulamos y verificamos un decodificador Viterbi en hardware, con c贸digo VHDL. Se trata del algoritmo de m谩xima verosimilitud para decodificar un c贸digo convolucional. Por este motivo es muy utilizado como m茅todo de correcci贸n de errores en los sistemas FEC. En la Universidad estamos desarrollando un prototipo de un sistema WiMAX entre varios proyectos fin de carrera diferentes. Uno de los bloques de este protocolo WiMAX es un decodificador Viterbi. De manera que el trabajo en este proyecto consiste en dise帽ar un decodificador Viterbi, con las especificaciones indicadas por el protocolo WiMAX. Una vez implementado, simulado y verificado lo integraremos en el prototipo. FEC corrige los errores en el receptor sin retransmitir la secuencia original. Se utiliza en sistemas sin reenv铆o, o en sistemas en tiempo real donde no se puede esperar a la retransmisi贸n para mostrar los datos. El proceso consiste en codificar la secuencia original, a帽adi茅ndole bits redundantes antes de transmitirla. La secuencia codificada redundante se transmite y llega al receptor. En el receptor hay un decodificador que obtiene la secuencia m谩s pr贸xima a la original antes de la codificaci贸n. Con este sistema se disminuye la BER en la salida del receptor, sin necesidad de aumentar Eb/No. El decodificador Viterbi se invent贸 en el a帽o 1967, y se emplea en muchos sistemas de comunicaci贸n, donde los datos transmitidos son propensos a errores antes de la recepci贸n. Es compatible con multitud de est谩ndares habituales, por ejemplo: GSM, WLAN, IS-54, IS-95, CDMA, ADSL, SHDSL, HDSL2, DVB, 3G, 3GPP, 3GPP2, 3GPP LTE, IEEE 802.16, HiperLAN, Intelsat IESS-308/309, IEEE 802.11a, DBS, VSAT... Por tanto, obviamente ya existen dispositivos que lo implementan en hardware. Se trata de IP (intellectual property) cores, que est谩n disponibles en el mercado, pero no son libres, se requiere una licencia para utilizarlos. El decodificador Viterbi es un algoritmo est谩ndar, con diversos par谩metros determinados por unas especificaciones. Estos par谩metros permiten ajustar la decodificaci贸n a los requisitos del sistema de comunicaciones. L贸gicamente, con unas especificaciones complejas se consigue una mayor reducci贸n de la BER que con unas especificaciones simples, pero a cambio el decodificador ser谩 m谩s complejo. Una vez fijadas las especificaciones del decodificador, todos los dispositivos que las cumplan implementan el mismo algoritmo. Por tanto, no existir谩n diferencias de funcionalidad entre ellos. Este es un aspecto importante, que nos indica que nuestro decodificador debe tener la misma funcionalidad y los mismos puertos de entradasalida, que cualquier IP Viterbi decoder que cumpla las mismas especificaciones. Como en todo dise帽o hardware, optimizaremos el c贸digo para obtener el mejor compromiso entre m铆nima 谩rea ocupada y m谩xima frecuencia de reloj. Nuestro objetivo principal ha sido dise帽ar un decodificador Viterbi que cumpla exactamente el algoritmo. Por tanto es funcionalmente igual a cualquier modelo que ya exista en el mercado. Sin embargo, hemos dado un valor a帽adido a nuestro decodificador, que supone una ventaja frente a la mayor铆a de los decodificadores comerciales. Consiste en que lo hemos realizado completamente multiplataforma, independiente de la tecnolog铆a. Nuestro c贸digo VHDL se puede implementar en cualquier FPGA de cualquier fabricante. Y tambi茅n en el resto de dispositivos l贸gicos programables, por ejemplo los m谩s comunes: ASICs, CPLDs, PLDs... Esto es una ventaja frente a la mayor铆a de m贸dulos comerciales, que suelen ser espec铆ficos para una arquitectura concreta, son dependientes de la tecnolog铆a. Por ejemplo, los fabricantes de FPGAs: Xilinx, Actel, Lattice y Altera disponen de un IP core Viterbi decoder. Pero s贸lo puede utilizarse en determinadas FPGAs de su propio cat谩logo de productos. Una parte fundamental es la verificaci贸n, para ello hemos desarrollado simuladores que nos permiten comparar nuestro decodificador con otro que utilizamos como referencia: el Xilinx IP core Viterbi decoder. Hemos realizado una simulaci贸n exhaustiva, gracias a la cual podemos asegurar que nuestro decodificador implementa exactamente el algoritmo Viterbi, sin ning煤n error de funcionalidad. A continuaci贸n, una vez finalizada la verificaci贸n, integraremos el decodificador en el prototipo WiMAX, finalizando as铆 el proyecto. ________________________________________________________________________________________________________________________In communication systems are errors that cause the sequence at the receiver is not the same to the sequence transmitted. For this reason, is usual to use FEC, forward error correction, systems. These systems consist of an encoder-decoder that make possible to correct the errors added by the transmission channel. The most common are convolutional codes, block codes and turbo codes. In this project we design, implement, simulate and verify a Viterbi decoder in hardware with VHDL code. It is the maximum likelihood algorithm for decoding a convolutional code. For this motive it is widely used as method to correct errors in FEC systems. At the University we are developing a prototype of a WiMAX system between several different final degree projects. One of the blocks of this WiMAX protocol is a Viterbi decoder. So that, the work on this project is to design a Viterbi decoder, with the specifications indicated by the WiMAX protocol. Once implemented, simulated and verified, we will integrate it in the prototype. FEC is a mechanism to correct mistakes, that allows to correct them in the receiver without retransmitting the original sequence. It is useful in systems without a reverse channel to request retransmission of data, or in real time systems where it is not possible to wait for the retransmission to show the information. The process consists in coding the original sequence, adding redundant bits before transmitting it. The coded redundant sequence is transmitted and arrives to the receiver. In the receiver there is a decoder that obtains the sequence closest to the original one before the codification. With this system the BER is decreased in the output of the receiver, without need to increase Eb/No. The Viterbi decoder was invented in year 1967, and it is used in many communication systems, where the transmitted data are prone to errors before the reception. It is compatible with many habitual standards, for example: GSM, WLAN, IS-54, IS-95, CDMA, ADSL, SHDSL, HDSL2, DVB, 3G, 3GPP, 3GPP2, 3GPP LTE, IEEE 802.16, HiperLAN, Intelsat IESS-308/309, IEEE 802.11a, DBS, VSAT... Therefore, obviously already exist devices that implement it in hardware. These devices are called IP (intellectual property) cores, and are available on the market, but they are not free, a license is required to use them. The Viterbi decoder is a standard algorithm, with various parameters determined by specifications. These parameters allow to adjust decoding to the requirements of the communications system. Obviously, a complex specification achieves greater reduction of BER that with a simple specification, but in return the decoder will be more complex. Once laid down the specifications of the decoder, all devices that fulfill them implement the same algorithm. Therefore, there will not exit differences of functionality between them. This is an important aspect, which tell us that our decoder must have the same functionality and the same input-output ports, as any IP Viterbi decoder that fulfills the same specifications. As in all hardware design, we will optimize the code for getting the best compromise between minimum occupied area and maximum clock frequency. Our main aim has been to design a Viterbi decoder that fulfills exactly the algorithm. Therefore it is functionally equal to any model which already exists on the market. However, we have given an added value to our decoder, which is an advantage over the majority of commercial decoders. It consists that we have realized it fully multiplatform, technology independent. Our VHDL code can be implemented onto any FPGA from any manufacturer. And also onto the rest of programmable logic devices, for example the most common: ASICs, CPLDs, PLDs... This is an advantage over the majority of commercial devices, which are usually specific for a concrete architecture, they are technology dependent. For example, the FPGA manufacturers: Xilinx, Actel, Lattice and Altera have a IP core Viterbi decoder. But it can only be used onto certain FPGAs of its own catalog of products. A fundamental part is the verification, for this, we have developed simulators that allow us to compare our decoder with another that we use as a reference: the Xilinx IP core Viterbi decoder. We have carried out an exhaustive simulation, whereby we can assure that our decoder implements exactly the Viterbi algorithm, without any functionality error. Then, once the verification has been completed, we will integrate the decoder in the prototype WiMAX, finishing this way the project.Ingenier铆a de Telecomunicaci贸
    corecore